var express = require('express');
var router = express.Router();
var db = require('../db.js');

// all
router.all('/all', function (req, res) {
  if (req.method == "POST") {
    var reqData = req.body;
  } else {
    var reqData = req.query || req.params;
  }
  db.Topic.find().then(function(data){
    res.json({data})
  })
})
// query
router.all('/query', function (req, res) {
  if (req.method == "POST") {
    var reqData = req.body;
  } else {
    var reqData = req.query || req.params;
  }
  console.log('topicjs 24',reqData.query)
  var pageNum=reqData.pageNum*1||1;
  var pageSize=reqData.pageSize*1||20;
  if(!!reqData.query&&!!reqData.query.$reg){
    for (const key in reqData.query.$reg) {
      if (reqData.query.hasOwnProperty(key)) {
        reqData.query[key]=new RegExp(reqData.query[key],'i')    
      }
    }
    delete reqData.query.$reg;
  }
  db.Topic.find(reqData.query||{}).then(function(data){
    var pageCount=Math.ceil(data.length/pageSize);
    pageNum=pageNum>pageCount?pageCount:pageNum;
    db.Topic.find(reqData.query||{}).sort({'_id':-1}).skip((pageNum==0?0:pageNum-1)*pageSize).limit(pageSize).then(function(data){
      res.json({
        code:200,
        pageNum,
        pageSize,
        pageCount,
        data
      })
    })
  })
})
// add
router.all('/add',function(req,res){
  if(req.method=="POST"){
    var reqData=req.body;
  }else{
    var reqData=req.query||req.params;
  }
  db.Topic.find({name:reqData.query.name}).then(function(data){
    if(data.length==0){
      var newTopic=new db.Topic(reqData.query);
      newTopic.save().then(function(){
        res.json({
          code:200,
          msg:'创建成功'
        })
      })
    }else{
      res.json({
        code:1001,
        meg:'该话题已存在'
      })
    }
  })
})
// fuzzy query 
router.all('/fuzzy', function (req, res) {
  if (req.method == "POST") {
    var reqData = req.body;
  } else {
    var reqData = req.query || req.params;
  }
  db.Topic.find({ name: { $regex: reqData.query.name }, statu:{"$ne":"baned"}}).then(function(data){
    res.json({ 
      code:200,
      data: data 
    })
  })
})
// updata
router.all('/updata',function(req,res){
  if(req.method=="POST"){
    var reqData=req.body;
  }else{
    var reqData=req.query||req.params
  }
  db.Topic.findOneAndUpdate(reqData.query,reqData.data).then(function(data){
    res.json({
      code:200,
      msg:'提交成功',
      data
    })
  })
})

// router.post('/search', function (req, res) {
//   console.log(req.body)
//   var kw = req.body.kw;
//   db.Community.find({ name: { $regex: kw }, statu: "normal" }).then(function (data) {
//     res.json({ data: data })
//   })
// });
// router.get('/add/:name', (req, res) => {
//   var name = req.params.name;
//   res.render('addBlock', { name: name })
// })
// router.post('/add/', (req, res) => {
//   var name = req.body.name;
//   db.Community.find({ name: name, statu: "normal" }).then(function (data) {
//     if (data.length == 0) {
//       var com = new db.Community(req.body);
//       com.save().then(function () {
//         res.json({
//           code: 'success',
//           msg: '创建成功啦！',
//           link: '/blocks/' + name
//         })
//       })
//     } else {
//       res.json({
//         code: 'error',
//         msg: '这个社区貌似已经被创建了，下次手速快一点哦 QAQ',
//         link: '/blocks/' + name
//       })
//     }
//   })

// })
module.exports = router;